home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib13.dsk / NIBBLE DESIGNER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  14KB  |  349 lines

  1. 10  REM     **********************
  2. 11  REM     *  NIBBLE DESIGNER   *
  3. 12  REM     *  BY COLIN FRENCH   *
  4. 13  REM     * COPYRIGHT (C) 1983 *
  5. 14  REM     * BY MICROSPARC, INC *
  6. 15  REM     * LINCOLN, MA. 01773 *
  7. 16  REM     **********************
  8. 80  IF  PEEK(104) = 64  THEN 120
  9. 90  POKE 103,1: POKE 104,64: POKE 16384,0
  10. 100  PRINT  CHR$(4);"RUN NIBBLE DESIGNER"
  11. 110  REM  ******* INITIALIZE VARIABLES **********
  12. 120 D$ =  CHR$(4): TEXT : HOME 
  13. 130  DIM C$(7),A$(1),T$(2)
  14. 140 C$(0) = "BLACK 1":C$(1) = "GREEN  ":C$(2) = "BLUE   "
  15. 150 C$(3) = "WHITE 1":C$(4) = "BLACK 2":C$(5) = "ORANGE "
  16. 160 C$(6) = "VIOLET ":C$(7) = "WHITE 2"
  17. 170 A$(0) = "KEYBOARD":A$(1) = "PADDLES "
  18. 180 T$(0) = "USER'S ":T$(1) = "PROGRAM":T$(2) = "NONE   "
  19. 190 D$ =  CHR$(4):XC = 140:YC = 90
  20. 200 TABLE = 0:SCREEN = 0:ACT = 0
  21. 210 CC = 3: HCOLOR= CC:RR = 0: ROT= RR
  22. 220 SS = 1: SCALE= SS:NN = 1
  23. 230 FAST = 8:UN$ = "":NUM$ = ""
  24. 240  REM  -SET SHAPE TABLE ADDRESS-
  25. 250  POKE 232,1: POKE 233,8
  26. 260  REM  -DISPLAY INTRODUCTION-
  27. 270  GOSUB 4000
  28. 280  REM  -GET SHAPE TABLE'S NAME-
  29. 290 LOC = 1: GOTO 400
  30. 300 :
  31. 310  REM  ******* INITIALIZE SCREEN *************
  32. 320 :
  33. 330  HGR 
  34. 340  HOME : VTAB 21
  35. 350  INVERSE : PRINT " ** NIBBLE DESIGNER **  ? -INSTRUCTIONS ";: NORMAL 
  36. 360  PRINT "COLOR : ";C$(CC);"   NUMBER OF SHAPE :    ";: HTAB 37: PRINT NN
  37. 370  PRINT "ACTION: ";A$(ACT);"  ROTATION:      X:    ";: HTAB 29: PRINT RR;: HTAB 37: PRINT XC
  38. 380  PRINT "TABLE : ";T$(TABLE);"   SCALE   :      Y:    ";: HTAB 29: PRINT SS;: HTAB 37: PRINT YC;
  39. 390  GOTO 1000
  40. 400 :
  41. 410  REM  ******* GET NAME OF USER'S TABLE ******
  42. 420 :
  43. 430 TABLE = 0:NN = 1
  44. 440  IF SCREEN = 1  THEN SCREEN = 0: POKE  -16301,0
  45. 450  HOME : VTAB 24: PRINT "  (DEFAULT= TABLE/";
  46. 460  IF UN$ < >""  THEN  PRINT UN$;")";
  47. 470  IF UN$ = ""  THEN  PRINT T$(1);")";
  48. 480  HTAB 1: VTAB 22: PRINT "YOUR TABLE'S NAME?  TABLE/";
  49. 490 LMT = 22: GOSUB 700: IF W$ = ""  THEN W$ = UN$
  50. 500  IF W$ = ""  THEN TABLE = 1: GOTO 590
  51. 510  ONERR  GOTO 550
  52. 520  VTAB 22: PRINT : PRINT D$;"BLOAD TABLE/";W$;",A$801"
  53. 530  REM  -RESET ERROR FLAG-
  54. 540  POKE 216,0:UN$ = W$: GOTO 660
  55. 550  POKE 216,0: HOME : VTAB 22
  56. 560  IF  PEEK(222) = 11  THEN  PRINT "THAT IS NOT A LEGAL FILE NAME.": PRINT "TRY AGAIN.  (PUSH <RETURN>)  ";: GET Z$: GOTO 400
  57. 570  IF  PEEK(222) = 6  THEN  PRINT "THAT TABLE IS NOT ON THIS DISK.": PRINT "TRY AGAIN.  (PUSH <RETURN>)  ";: GET Z$: GOTO 400
  58. 580  GOTO 900
  59. 590  ONERR  GOTO 630
  60. 600  VTAB 22: PRINT : PRINT D$;"BLOAD TABLE/PROGRAM,A$801"
  61. 610  REM  -RESET ERROR FLAG-
  62. 620  POKE 216,0: GOTO 660
  63. 630  POKE 216,0: HOME : VTAB 22
  64. 640  IF  PEEK(222) = 6  THEN  PRINT "TABLE/PROGRAM ISN'T ON THIS DISK.": PRINT "INSERT CORRECT DISK.  (PUSH <RETURN>) ";: GET Z$: GOTO 400
  65. 650  GOTO 900
  66. 660  REM  -GET NUMBER OF SHAPES IN TABLE-
  67. 670 SNUM =  PEEK(2049)
  68. 680  IF LOC = 1  THEN  GOTO 300
  69. 690  GOTO 340
  70. 700 :
  71. 710  REM  ******* MULTI-LETTER INPUT ROUTINE ****
  72. 720 :
  73. 730 W$ = ""
  74. 740  GET Z$
  75. 750  IF Z$ =  CHR$(13)  THEN  RETURN 
  76. 760  IF Z$ =  CHR$(8)  THEN 790
  77. 770  IF  LEN(W$) = LMT  THEN 740
  78. 780  PRINT Z$;:W$ = W$ +Z$: GOTO 740
  79. 790  IF  LEN(W$) = 0  THEN 740
  80. 800  PRINT  CHR$(8);: PRINT " ";: PRINT  CHR$(8);
  81. 810  IF  LEN(W$) = 1  THEN 730
  82. 820 W$ =  LEFT$(W$, LEN(W$) -1): GOTO 740
  83. 900 :
  84. 910  REM  ******* UNUSUAL DISK ERRORS ***********
  85. 920 :
  86. 930  PRINT "A SYSTEM ERROR #"; PEEK(222);" HAS OCCURRED"
  87. 940  PRINT "LINE #"; PEEK(218) + PEEK(219) *256
  88. 950  POKE 216,0: END 
  89. 1000 :
  90. 1010  REM  *********** MAIN LOOP *****************
  91. 1020 :
  92. 1030  XDRAW NN AT XC,YC
  93. 1040  REM  -CHECK FOR KEYPRESS-
  94. 1050 K =  PEEK( -16384): POKE  -16368,0
  95. 1060  XDRAW NN AT XC,YC
  96. 1070  IF K <128  THEN K$ = "": GOTO 1340
  97. 1080 K$ =  CHR$(K -128)
  98. 1090  REM  -BRANCH TO FUNCTIONS-
  99. 1100  IF  ASC(K$) > =  ASC("0")  AND  ASC(K$) < =  ASC("9")  THEN 1900
  100. 1110  IF NUM$ < >""  THEN NUM$ = "": VTAB 22: HTAB 37: PRINT "   ";: HTAB 37: PRINT NN
  101. 1120  IF K$ = "C"  THEN 2000
  102. 1125  IF K$ = "O"  THEN  GET K$: GOTO 1120
  103. 1130  IF K$ = "R"  THEN 2100
  104. 1140  IF K$ =  CHR$(18)  THEN 2150
  105. 1150  IF K$ = "S"  THEN 2200
  106. 1160  IF K$ =  CHR$(19)  THEN 2250
  107. 1170  IF K$ = "N"  THEN 2300
  108. 1180  IF K$ =  CHR$(14)  THEN 2350
  109. 1190  IF K$ = "D"  THEN  DRAW NN AT XC,YC: GOTO 1000
  110. 1200  IF K$ = "X"  THEN X =  PEEK(8192):IX% =  INT(X/128):X = X -(128 *IX%):X% =  INT(X/42):X = X% +(4 *IX%): HCOLOR= X: DRAW NN AT XC,YC: HCOLOR= CC: GOTO 1000
  111. 1210  IF K$ = "F"  THEN 2400
  112. 1220  IF K$ = "T"  THEN 2500
  113. 1230  IF K$ = "A"  THEN 2700
  114. 1240  IF K$ =  CHR$(20)  THEN LOC = 2: GOTO 400
  115. 1250  IF K$ = "P"  THEN 2800
  116. 1260  IF K$ = "G"  THEN 3000
  117. 1270  IF K$ = "V"  THEN 3200
  118. 1280  IF K$ =  CHR$(5)  THEN  HPLOT 0,0: CALL 62454: GOTO 1000
  119. 1290  IF K$ =  CHR$(27)  THEN  TEXT : HOME : POKE 103,1: POKE 104,8: POKE 105,24: POKE 106,8: END 
  120. 1300  IF K$ =  CHR$(4)  THEN 3400
  121. 1310  IF K$ = "?"  THEN  GOSUB 5000: POKE  -16304,0: GOTO 340
  122. 1320  REM  -ADD FUNCTION BRANCH HERE-
  123. 1330  REM  -ADD FUNCTION BRANCH HERE-
  124. 1340  REM  -MOVING OF SHAPE-
  125. 1345 YN = YC:XN = XC
  126. 1350  IF ACT = 1  THEN 1450
  127. 1355 XN = XC:YN = YC
  128. 1360  IF K$ = "I"  THEN YC = YC -1: IF YC <0  THEN YC = 191
  129. 1370  IF K$ = "J"  THEN XC = XC -1: IF XC <0  THEN XC = 279
  130. 1380  IF K$ = "K"  THEN XC = XC +1: IF XC >279  THEN XC = 0
  131. 1390  IF K$ = "M"  THEN YC = YC +1: IF YC >191  THEN YC = 0
  132. 1400  IF K$ =  CHR$(9)  THEN YC = YC -FAST: IF YC <0  THEN YC = YC +191
  133. 1410  IF K$ =  CHR$(10)  THEN XC = XC -FAST: IF XC <0  THEN XC = XC +279
  134. 1420  IF K$ =  CHR$(11)  THEN XC = XC +FAST: IF XC >279  THEN XC = XC -279
  135. 1430  IF K$ =  CHR$(13)  THEN YC = YC +FAST: IF YC >191  THEN YC = YC -191
  136. 1435  IF YN = YC  AND XN = XC  THEN  GOTO 1000
  137. 1440  HTAB 1: VTAB 23: GOTO 370
  138. 1450 XC =  INT( PDL(0) *1.095)
  139. 1460  FOR D = 1 TO 5: NEXT D
  140. 1470 YC =  INT( PDL(1)/1.34)
  141. 1480  REM  -IS BUTTON BEING PRESSED?-
  142. 1490  IF  PEEK( -16287) >127  OR  PEEK( -16286) >127  THEN  DRAW NN AT XC,YC
  143. 1495  IF YN = YC  AND XN = XC  THEN  GOTO 1000
  144. 1500  HTAB 1: VTAB 23: GOTO 370
  145. 1900 :
  146. 1910  REM  ******* SELECTION OF SHAPE NUMBER ******
  147. 1920 :
  148. 1930 NUM$ = NUM$ +K$
  149. 1940  IF  LEN(NUM$) = 1  THEN  VTAB 22: HTAB 37: PRINT "---"
  150. 1950  VTAB 22: HTAB 37: PRINT NUM$
  151. 1960  IF  LEN(NUM$) <3  THEN 1000
  152. 1970 T =  VAL(NUM$):NUM$ = ""
  153. 1980  IF T <1  OR T >SNUM  THEN  HTAB 1: VTAB 22: GOTO 360
  154. 1990 NN = T: HTAB 1: VTAB 22: GOTO 360
  155. 2000 :
  156. 2010  REM  ******* INCREMENT COLOR ***************
  157. 2020 :
  158. 2030 CC = CC +1: IF CC >7  THEN CC = 0
  159. 2040  HCOLOR= CC: HTAB 1: VTAB 22: GOTO 360
  160. 2100 :
  161. 2110  REM  ****** INCREMENT ROTATION *************
  162. 2120 :
  163. 2130 RR = RR +1: IF RR >63  THEN RR = 0
  164. 2140  ROT= RR: HTAB 1: VTAB 22: GOTO 360
  165. 2150 :
  166. 2160  REM  ******* DECREMENT ROTATION ************
  167. 2170 :
  168. 2180 RR = RR -1: IF RR <0  THEN RR = 63
  169. 2190  ROT= RR: HTAB 1: VTAB 22: GOTO 360
  170. 2200 :
  171. 2210  REM  ******* INCREMENT SCALE ***************
  172. 2220 :
  173. 2230 SS = SS +1: IF SS >255  THEN SS = 1
  174. 2240  SCALE= SS: HTAB 1: VTAB 22: GOTO 360
  175. 2250 :
  176. 2260  REM  ******* DECREMENT SCALE ***************
  177. 2270 :
  178. 2280 SS = SS -1: IF SS <1  THEN SS = 1
  179. 2290  SCALE= SS: HTAB 1: VTAB 22: GOTO 360
  180. 2300 :
  181. 2310  REM  ****** INCREMENT SHAPE NUMBER *********
  182. 2320 :
  183. 2330 NN = NN +1: IF NN >SNUM  THEN NN = 1
  184. 2340  HTAB 1: VTAB 22: GOTO 360
  185. 2350 :
  186. 2360  REM  ****** DECREMENT SHAPE NUMBER *********
  187. 2370 :
  188. 2380 NN = NN -1: IF NN <1  THEN NN = SNUM
  189. 2390  HTAB 1: VTAB 22: GOTO 360
  190. 2400 :
  191. 2410  REM  ****** FULL SCREEN/MIXED SCREEN *******
  192. 2420 :
  193. 2430 SCREEN =   NOT (SCREEN)
  194. 2440  IF SCREEN = 0  THEN  POKE  -16301,0
  195. 2450  IF SCREEN = 1  THEN  POKE  -16302,0
  196. 2460  GOTO 1000
  197. 2500 :
  198. 2510  REM  ****** USER TABLE/PROGRAM TABLE *******
  199. 2520 :
  200. 2530  IF TABLE = 1  AND UN$ = ""  THEN LOC = 2: GOTO 400
  201. 2540  IF TABLE = 2  AND UN$ = ""  THEN TABLE = 1: GOTO 2560
  202. 2550 TABLE =   NOT (TABLE)
  203. 2560  VTAB 22: PRINT : ONERR  GOTO 2630
  204. 2570  IF TABLE = 0  THEN  PRINT D$;"BLOAD TABLE/";UN$;",A$801"
  205. 2580  IF TABLE = 1  THEN  PRINT D$;"BLOAD TABLE/PROGRAM,A$801"
  206. 2590  REM  -RESET ERROR FLAG-
  207. 2600  POKE 216,0
  208. 2610  REM  -GET NUMBER OF SHAPES IN TABLE-
  209. 2620 SNUM =  PEEK(2049):NN = 1: HTAB 1: VTAB 22: GOTO 360
  210. 2630  IF SCREEN = 1  THEN SCREEN = 0: POKE  -16301,0
  211. 2640  HOME : VTAB 22: POKE 216,0
  212. 2650  IF  PEEK(222) = 6  THEN  PRINT "THAT TABLE IS NOT ON THIS DISK.": PRINT "TRY AGAIN.  (PUSH <RETURN>)  ";: GET Z$:TABLE =   NOT (TABLE): GOTO 340
  213. 2660  GOTO 900
  214. 2700 :
  215. 2710  REM  ****** ACTION: KEYBOARD/PADDLES *******
  216. 2720 :
  217. 2730 ACT =   NOT (ACT)
  218. 2740  HTAB 1: VTAB 23: GOTO 370
  219. 2800 :
  220. 2810  REM  ***** PUT PICTURE ON DISK *************
  221. 2820 :
  222. 2830  IF SCREEN = 1  THEN SCREEN = 0: POKE  -16301,0
  223. 2840  HOME : VTAB 22: PRINT "NAME FOR PICTURE? ";
  224. 2850 LMT = 30: GOSUB 700
  225. 2860  IF W$ = ""  OR W$ =  CHR$(27)  THEN 340
  226. 2870  ONERR  GOTO 2900
  227. 2880  VTAB 22: PRINT : PRINT D$;"BSAVE ";W$;",A$2000,L$1FFB"
  228. 2890  POKE 216,0: GOTO 340
  229. 2900  POKE 216,0: HOME : VTAB 22
  230. 2910  IF  PEEK(222) = 11  THEN  PRINT "THAT IS NOT A LEGAL FILE NAME.": PRINT "TRY AGAIN.  (PUSH <RETURN>)  ";: GET Z$: GOTO 340
  231. 2920  IF  PEEK(222) = 9  THEN  PRINT "THERE ISN'T ENOUGH ROOM ON THIS DISK.": PRINT "TRY AGAIN.  (PUSH <RETURN>)  ";: GET Z$: GOTO 340
  232. 2930  GOTO 900
  233. 3000 :
  234. 3010  REM  ****** GET PICTURE FROM DISK **********
  235. 3020 :
  236. 3030  IF SCREEN = 1  THEN SCREEN = 0: POKE  -16301,0
  237. 3040  HOME : VTAB 22: PRINT "NAME OF PICTURE? ";
  238. 3050 LMT = 30: GOSUB 700
  239. 3060  IF W$ = ""  OR W$ =  CHR$(27)  THEN 340
  240. 3070  ONERR  GOTO 3100
  241. 3080  VTAB 22: PRINT : PRINT D$;"BLOAD ";W$;",A$2000"
  242. 3090  POKE 216,0: GOTO 340
  243. 3100  POKE 216,0: HOME : VTAB 22
  244. 3110  IF  PEEK(222) = 11  THEN  PRINT "THAT IS NOT A LEGAL FILE NAME.": PRINT "TRY AGAIN.  (PUSH <RETURN>)  ";: GET Z$: GOTO 340
  245. 3120  IF  PEEK(222) = 6  THEN  PRINT "THAT PICTURE IS NOT ON THIS DISK.": PRINT "TRY AGAIN.  (PUSH <RETURN>)  ";: GET Z$: GOTO 340
  246. 3130  GOTO 900
  247. 3200 :
  248. 3210  REM  ****** LOAD A VECTOR FILE *************
  249. 3220 :
  250. 3230  IF SCREEN = 1  THEN SCREEN = 0: POKE  -16301,0
  251. 3240  HOME : VTAB 22: PRINT "NAME OF VECTOR FILE? VECTORS/";
  252. 3250 LMT = 22: GOSUB 700
  253. 3260  IF W$ = ""  OR W$ =  CHR$(27)  THEN 340
  254. 3270  ONERR  GOTO 3340
  255. 3280  VTAB 22: PRINT : PRINT D$;"BLOAD VECTORS/";W$;",A$805"
  256. 3290  POKE 216,0:TABLE = 2:SNUM = 1:NN = 1
  257. 3300  REM  -POKE IN HEADER FOR TABLE-
  258. 3310  POKE 2049,1: POKE 2050,0
  259. 3320  POKE 2051,4: POKE 2052,0
  260. 3330  GOTO 340
  261. 3340  POKE 216,0: HOME : VTAB 22
  262. 3350  IF  PEEK(222) = 11  THEN  PRINT "THAT IS NOT A LEGAL FILE NAME.": PRINT "TRY AGAIN.  (PUSH <RETURN>)  ";: GET Z$: GOTO 340
  263. 3360  IF  PEEK(222) = 6  THEN  PRINT "THAT VECTOR FILE IS NOT ON THIS DISK.": PRINT "TRY AGAIN.  (PUSH <RETURN>)  ";: GET Z$: GOTO 340
  264. 3370  GOTO 900
  265. 3400 :
  266. 3410  REM  ******* DOS CATALOG *******************
  267. 3420 :
  268. 3430  IF SCREEN = 1  THEN SCREEN = 0: POKE  -16301,0
  269. 3440  TEXT : HOME : PRINT : PRINT D$;"CATALOG"
  270. 3450  PRINT : PRINT "  (PUSH <RETURN> WHEN FINISHED)  ";: GET Z$
  271. 3460  REM  -BACK TO GRAPHICS-
  272. 3470  POKE  -16304,0
  273. 3480  GOTO 340
  274. 4000 :
  275. 4010  REM  ******* INTRODUCTION ******************
  276. 4020 :
  277. 4030  TEXT : HOME 
  278. 4040  VTAB 8: HTAB 9: PRINT "*** NIBBLE DESIGNER ***": VTAB 12: PRINT "** COPYRIGHT 1983 BY MICROSPARC, INC. **"
  279. 4050  VTAB 20: PRINT "   WOULD YOU LIKE INSTRUCTIONS? ";
  280. 4060  GET Z$: IF Z$ = "Y"  THEN  GOSUB 5000: GOTO 4090
  281. 4070  IF Z$ < >"N"  THEN 4060
  282. 4090  HOME : RETURN 
  283. 5000 :
  284. 5010  REM  ****** INSTRUCTIONS *******************
  285. 5020 :
  286. 5030  TEXT : HOME 
  287. 5040  INVERSE : PRINT "       *** NIBBLE DESIGNER ***          ";: NORMAL : PRINT 
  288. 5050  PRINT " USING THIS PROGRAM YOU MAY DRAW SHAPES"
  289. 5060  PRINT "FROM YOUR FAVORITE SHAPE TABLES ON THE"
  290. 5070  PRINT "HI-RES SCREEN.  THERE'S ALSO A STANDARD"
  291. 5080  PRINT "SHAPE TABLE CALLED 'TABLE/PROGRAM' THAT"
  292. 5090  PRINT "INCLUDES VARIOUS CIRCLES, SQUARES, ETC"
  293. 5100  PRINT "FOR YOU TO USE.": PRINT 
  294. 5110  PRINT "-----------DRAWING CONTROLS------------"
  295. 5120  PRINT "     D  -DRAW SHAPE"
  296. 5130  PRINT "     X  -XDRAW SHAPE"
  297. 5140  PRINT "     R  -INCREASE ROTATION"
  298. 5150  PRINT "CTRL-R  -DECREASE ROTATION"
  299. 5160  PRINT "     S  -INCREASE SCALE"
  300. 5170  PRINT "CTRL-S  -DECREASE SCALE"
  301. 5180  PRINT "     C  -CHANGE COLOR"
  302. 5190  PRINT "  *** WARNING!! CTRL-C STOPS PROGRAM!"
  303. 5200  PRINT "     N  -SHOW NEXT SHAPE IN TABLE"
  304. 5210  PRINT "CTRL-N  -SHOW PREVIOUS SHAPE IN TABLE"
  305. 5220  PRINT "         (OR TYPE IN SHAPE'S NUMBER)"
  306. 5230  PRINT "CTRL-E  -COLOR THE ENTIRE SCREEN"
  307. 5240  VTAB 24: PRINT " (PUSH 'M' FOR MORE, <ESC> TO RETURN) ";
  308. 5250  GET Z$: IF Z$ =  CHR$(27)  THEN 5660
  309. 5260  IF Z$ < >"M"  THEN 5250
  310. 5270  HOME : PRINT "-----------MOVEMENT CONTROLS-----------": PRINT 
  311. 5280  PRINT " -IF ACTION CONTROLLED BY KEYBOARD:": PRINT 
  312. 5290  PRINT "     I  -MOVE SHAPE UP ONE DOT"
  313. 5300  PRINT "     J  -MOVE SHAPE LEFT ONE DOT"
  314. 5310  PRINT "     K  -MOVE SHAPE RIGHT ONE DOT"
  315. 5320  PRINT "     M  -MOVE SHAPE DOWN ONE DOT"
  316. 5330  PRINT "CTRL-I  -MOVE SHAPE UP 8 DOTS"
  317. 5340  PRINT "CTRL-J  -MOVE SHAPE LEFT 8 DOTS"
  318. 5350  PRINT "CTRL-K  -MOVE SHAPE RIGHT 8 DOTS"
  319. 5360  PRINT "CTRL-M  -MOVE SHAPE DOWN 8 DOTS": PRINT 
  320. 5370  PRINT " -IF ACTION CONTROLLED BY PADDLES:": PRINT 
  321. 5380  PRINT "PDL(0)  -MOVE SHAPE HORIZONTALY"
  322. 5390  PRINT "PDL(1)  -MOVE SHAPE VERTICALY"
  323. 5400  PRINT "BUTTON  -DRAW THE SHAPE"
  324. 5410  VTAB 24: PRINT " (PUSH 'M' FOR MORE, <ESC> TO RETURN) ";
  325. 5420  GET Z$: IF Z$ =  CHR$(27)  THEN 5660
  326. 5430  IF Z$ < >"M"  THEN 5420
  327. 5440  HOME : PRINT "------------OTHER CONTROLS-------------": PRINT 
  328. 5450  PRINT "     F  -SWITCH BETWEEN FULL SCREEN AND"
  329. 5460  PRINT "         MIXED SCREEN."
  330. 5470  PRINT "     T  -SWITCH BETWEEN PROGRAM SHAPE"
  331. 5480  PRINT "         TABLE AND USER'S SHAPE TABLE."
  332. 5490  PRINT "CTRL-T  -LOAD A DIFFERENT USER TABLE."
  333. 5500  PRINT "     A  -ACTION: SWITCH BETWEEN PADDLE"
  334. 5510  PRINT "         CONTROL AND KEYBOARD CONTROL."
  335. 5520  PRINT "     P  -PUT THE HI-RES SCREEN ON DISK."
  336. 5530  PRINT "     G  -GET A SCREEN IMAGE FROM DISK."
  337. 5540  PRINT "     V  -LOAD A VECTOR FILE IN PLACE OF"
  338. 5550  PRINT "         THE SHAPE TABLE BEING USED."
  339. 5560  PRINT "CTRL-D  -DISK CATALOG."
  340. 5570  PRINT "     ?  -DISPLAYS THESE INSTRUCTIONS."
  341. 5580  PRINT " <ESC>  -QUITS THE PROGRAM.": PRINT 
  342. 5590  PRINT "  REMEMBER THAT ANY OF THE SHAPES CAN"
  343. 5600  PRINT "BE USED AS A 'BRUSH' AND MOVED ALONG TO"
  344. 5610  PRINT "FILL IN AN AREA, OR OVERLAPPED TO CREATE";
  345. 5620  PRINT "NEW PATTERNS AND EFFECTS.  EXPERIMENT!": PRINT 
  346. 5630  VTAB 24: PRINT "(PUSH 'R' TO RE-READ, <ESC> TO RETURN) ";
  347. 5640  GET Z$: IF Z$ = "R"  THEN 5030
  348. 5650  IF Z$ < > CHR$(27)  THEN 5640
  349. 5660  HOME : RETURN